/**
 * @ClassDescription:
 * @JdkVersion: 1.8
 * @Author: 李白
 * @Created: 2024/10/29 15:08
 */

/**
 * 内部类
 * 当外部类和内部类有名称一样的变量时，优先访问内部类的变量
 */
class OuterClass{
    public int date1 = 10;
    public static int date2 = 20;
    private int date3 = 30;



    class InnerClass{
        public int date4 = 11;
        public int date1 = 1111;
        public static final int date5 = 22;//静态变量不依赖任何实例，而内部类依赖外部类的实例，所以内部类中不能有静态变量，需要，则要加一个final
        //使其在编译时就已经确定
        //而实例化在程序执行时才开始
        private int date6 = 33;
        public void test(){
            System.out.println("innerclass：：test");
            System.out.println(date1);
            System.out.println(OuterClass.this.date1);//this指代的就是采用这个方法的变量，即innerclass
            System.out.println(date2);
            System.out.println(date3);
            System.out.println(date4);
            System.out.println(date5);
            System.out.println(date6);
        }
    }
    public void test(){
        System.out.println("outerclass：：test");
    }
}
public class Test2 {
    public static void main(String[] args) {
        OuterClass outerClass = new OuterClass();
        OuterClass.InnerClass innerClass = outerClass.new InnerClass();
        innerClass.test();
    }
}
